2020-03-19  Eric Bavier  <bavier@member.fsf.org>

	dist: Fix distcheck with V=1.
	* Makefile.am (.scm.go)[AM_V_P]: Fix stdout redirection.

	dist: Ensure fdl texi is distributed.
	* doc.am (doc_joy_TEXINFOS): New variable.

	doc: Fix compilation with recent texinfo.
	* doc/joy.texi (Primitives)<exit>: Remove "bottom" indication, which
	is intended to signify a sort of "null" result, but does not render
	well in either .texi or .tex.
	(Forth Aliases)<within, within?>: Use '@leq' and '<' rather than
	@math.

	build: Remove generated tests/package.m4 from version control.
	* tests/package.m4: Delete file.
	* .gitignore: Add it.
	* tests.am (EXTRA_DIST): Remove it
	(testsuite): Add dependency on package.m4

	joy: Minor adjustments to support Guile 3.x.
	* configure.ac: Add "3.0" to arguments for GUILE_PKG.  Adjust error
	message for missing "guild".  Remove unnecessary AC_CONFIG_MACRO_DIR.
	* language/joy/compile-tree-il.scm (call): Adjust version check to
	achieve a true ">= 2.2".

2018-02-10  Eric Bavier  <bavier@member.fsf.org>

	joy: Support concatenating scripts and stack initialization.
	* joy/ui.scm (compile-and-run): Move compilation logic to...
	(compile-files): ...this new procedure.
	(simple-interpret): New procedure.
	(%options): Add "stack" option.
	(show-help): mention it.
	(joy-main): Collect stack non-option arguments after '--stack' into
	an initial stack, after being "interpreted".
	* doc/joy.texi (Invoking joy): Document command-line options.
	* tests/joy.at: New tests.
	* tests.am (TEST_MODULES): Add it.
	* tests/testsuite.at: Include it.
	* .dir-locals.el: Indent "parameterize"

2017-08-11  Eric Bavier  <bavier@member.fsf.org>

	Add .dir-locals.el

	tests: Add simple tests for the REPL.
	* tests/joy-repl.at: New file.
	* tests/testsuite.at: Include it.
	* tests.am (TEST_MODULES): Add it.

	joy: Customize repl welcome banner.
	* joy/ui.scm (show-version): Simple reformatting to taste.
	(repl-welcome): New procedure.  Override the one called by 'run-repl'.

2017-08-11  Eric Bavier  <bavier@member.fsf.org>

	joy: Fix joy-repl for Guile 2.2.

	* language/joy-repl/spec.scm (call): New variable.
	(compile-repl-tree-il): Use it instead of "apply".

2017-08-11  Eric Bavier  <bavier@member.fsf.org>

	joy: Fix distcheck.
	This is mostly fixing the 'joy' script so that it can load the modules
	it needs once they are installed, which means it can't load any itself
	until it has augmented Guile's load paths.

	* configure.ac (AC_CONFIG_FILES): Remove scripts/joy.
	* scripts/joy.in: Move the bulk of the interface to...
	* joy/ui.scm: ...this new file.
	* Makefile.am (MODULES): Add it.
	(JOY_MODULES): Prefix with "lib" directory, so we don't have to
	nobase.
	(scripts/joy): New target.  Create at 'make' time, so that we can let
	make expand the directories we need to know about.  This follows
	guidelines outlined in Automake's manual.
	(EXTRA_DIST): Add scripts/joy.in, as configure no longer handles it.
	(DISTCLEANFILES): New variable.
	(AM_V_GUILEC): Fix justification.
	* tests.am (CLEANFILES,DISTCLEANFILES): New variables.
	* language/joy/primitives.scm (include): Do not augment %load-path
	* pre-inst-env.in (GUILE_LOAD_COMPILED_PATH,GUILE_LOAD_PATH,PATH):
	Adjust for new module locations.
	* tests/test-base.joy, tests/test-forth.joy: Remove "tests/" prefix on
	includes.

2017-08-11  Eric Bavier  <bavier@member.fsf.org>

	build: Move modules out of "modules" directory.
	* Makefile.am (MODULES): Remove "modules" prefix.
	(JOY_MODULES): ditto.
	* modules/joy: Move directory to lib/joy.
	* modules/language: Move to top_srcdir.

2017-08-11  Eric Bavier  <bavier@member.fsf.org>

	tests: Use atconfig and atlocal.
	Previously 'testsuite' was not locating atconfig or atlocal, so we
	needed excessive variable exports.

	* configure.ac (AC_CONFIG_TESTDIR): Pass 'scripts' for test PATH.
	* tests.am (check-local, installcheck-local): Do not pass JOY or GREP
	variables to testsuite.  Tell testsuite to change to 'tests'
	directory.
	(tests/atconfig, tests/atlocal): New targets.
	* tests/atlocal.in: Use properly as autoconf input.  Define 'GREP'.
	* tests/joy-base.at, tests/joy-forth.at: Use 'joy' directly, rather
	than through "$JOY".  Provide -I flags.
	* tests/local.at (AT_COPYRIGHT): Add 2017.
	(AT_TESTED): Add 'joy'.

2017-08-09  Eric Bavier  <bavier@member.fsf.org>

	build: Use Guile's macros for installation directories.
	* configure.ac (GUILE,GUILD): Use GUILE_PKG and GUILE_PROGS macros.
	(guilemoduledir,guileobjectdir): Define with GUILE_EFFECTIVE_VERSION.
	* Makefile.am: Put modules in guilemoduledir and objects in
	guileobjectdir.

	doc: Populate README.
	* README: Include short summary.
	* doc/joy.texi (Copyright): Update with 2017.

2017-08-08  Eric Bavier  <bavier@member.fsf.org>

	tests: Forward -j flags to testsuite.
	* tests.am (check-local,installcheck-local): Pass on -j flag.

	joy: Correctly idenitfy not-strings.
	* module/language/joy/primitives.scm (string): Return 'false' for
	non-character-only lists.
	* tests/inicheck.joy (list!string, num!string): New tests.

	joy: Adjust tree-il for Guile 2.2.
	* module/language/joy/compile-tree-il.scm (call): New variable.
	(compile-expr): Use it.

	Remove stray file.
	* module/language/joy/load.scm: Delete file.

	doc: Summarize Joy and document 'def'.
	* doc/joy.texi (Programming in Joy): New chapter.
	(Primitives)[def]: New definition.

2017-08-08  Eric Bavier  <bavier@member.fsf.org>

	doc: Document '.' as an operator.

	* doc/joy.texi (Interactive Joy): Remove '.' from example input.
	(API Reference): ditto.
	(Primitives)[infra]: ditto.
	[write,.]: New primitive documentation.
	* module/language/joy/parser.scm (get-quote): Fix typo.

2016-03-11  Eric Bavier  <bavier@member.fsf.org>

	repl: Do not use non-existent module.
	* module/language/joy-repl/spec.scm [modules]: Remove compile-scheme
	  module.

2016-03-08  Eric Bavier  <bavier@member.fsf.org>

	joy: Properly error on unknown file.
	* scripts/joy.in (compile-and-run): Properly exit with an error status
	  if the given file could not be found.

	joy: Forth aliases.
	* module/joy/forth.joy: New file.
	* Makefile.am (JOY_MODULES): Add it.
	* doc/joy.texi (Forth Aliases): Document new aliases.
	* tests/joy-forth.at, tests/test-forth.joy: New files.
	* tests/testsuite.at: Include .at file.
	* tests.am (TEST_MODULES): Add it.
	  (TEST_JOYS): New variable.
	  (EXTRA_DIST): Distribute TEST_MODULES and TEST_JOYS.

2016-03-08  Eric Bavier  <bavier@member.fsf.org>

	joy: Remove semantic meaning of `.' and definitions.
	* scripts/joy.in (print-joy): Move procedure to...
	* module/language/joy/write.scm (write-joy): here.  New file.
	* Makefile.am (MODULES): Add it.
	* module/language/joy/lexer.scm (lex): Remove special treatment of `.'
	  Explicitely mark newlines.
	* module/language/joy/parser.scm (lex-buffer): New procedure.
	  Simplify parsing logic with lex-buffer; Delimit expressions based on
	  newlines as requested.
	* module/language/joy/primitives.scm (write, .): New procedures.
	  (string): Fix in response to strings-as-lists.
	* module/language/joy/compile-tree-il.scm: Adjust to simplified parsing.
	* module/language/joy/spec.scm (joy): Use new parse-joy.
	* module/language/joy-repl/spec.scm (joy-repl): Use new parse-joy*.
	* tests/inicheck.joy: Replace "display" usage with "putchars".  Remove
	  unnecessary `.'s.
	* tests/test-base.joy: Ditto.

	* module/joy/base.joy (flip3, flip4): Fix definitions.
	  (drop, take): Rename to...
	  (list-tail, list-head): respectively.
	  (at): Adjust accordingly.  Adjust callees.

2016-03-04  Eric Bavier  <bavier@member.fsf.org>

	joy: Add 'def' primitive.
	* module/language/joy/primitives.scm (def): New variable.
	* module/language/joy/eval.scm: Adjust comment.

2016-03-03  Eric Bavier  <bavier@member.fsf.org>

	repl: Disable value history.
	* scripts/joy.in [main]: Set repl 'value-history option to #f.
	* doc/joy.texi (Interactive Joy): Adjust example.

	repl: pretty-print results.
	* scripts/joy.in (print-joy): New procedure.
	  [main]: Use it for the REPL's printer.
	* doc/joy.texi (Interactive Joy): Adjust examples.

	build: include spec.scm in MODULES.
	* Makefile.am (MODULES): Add module/language/joy/spec.scm.

	compiler: Make every expression an operator.
	* module/language/joy-repl/spec.scm: New file.
	* Makefile.am (MODULES): Add it.
	* module/language/joy/compile-tree-il.scm: Use parse-tree-il everywhere.
	  (compile-definition): Put definitions in toplevel (joy) module.
	  (compile-expr): Create procedures with a free variable for input
	  stack.
	  (compile-tree-il*): New procedure.
	* module/language/joy/eval.scm (eval): Lookup definitions in (joy).
	* module/language/joy/primitives.scm (include): Apply compiled include
	  to input stack.
	* scripts/joy.in (compile-and-run): New 'args' parameter.
	  [main]: start repl in 'joy-repl language.
	* doc/joy.texi (Interactive Joy): New chapter.

2016-02-29  Eric Bavier  <bavier@member.fsf.org>

	joy: Support strings as "aggregates".
	* module/language/joy/compile-tree-il.scm (compile-factor): Compile
	  strings to lists of characters.
	  (compile-term): Simplify by compiling to list constants.
	* module/language/joy/primitives.scm (putchars, include): Adjust
	  accordingly.

	Initial commit.
